package com.xuecheng.content.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xuecheng.api.content.model.dto.TeachplanDTO;
import com.xuecheng.api.content.model.dto.TeachplanMediaDTO;
import com.xuecheng.content.entity.Teachplan;

/**
 * <p>
 * 课程计划 服务类
 * </p>
 *
 * @author itcast
 * @since 2021-10-16
 */
public interface TeachplanService extends IService<Teachplan> {
    /**
     * todo 根据课程id查询, 课程计划
     * @param courseId    传入的课程id
     * @param companyId    机构id  为了数据隔离,每家机构只能查询自己当前机构的课程数据
     * @return TeachplanDTO    返回课程的课程计划信息
     */
    TeachplanDTO queryTreeNodes( Long courseId,Long companyId);

    /**
     *todo  增加或者修改课程计划
     * @param dto     前端传入的数据
     * @param companyId   机构id用于数据隔离
     * @return TeachplanDTO  修改或者添加完后才能返回给前端的数据
     */
    TeachplanDTO createOrModifyTeachPlan(TeachplanDTO dto,Long companyId);

    /**
     *  todo 删除课程计划
     * @param teachPlanId   前端传入的要删除的课程计划id'
     * @param companyId   机构id用于数据隔离
     */
    void removeTeachPlan(Long teachPlanId,Long companyId);

    /**
     * todo 课程计划绑定媒资
     * @param dto
     * @param companyId
     * @return
     */
    TeachplanMediaDTO associateMedia(TeachplanMediaDTO dto, Long companyId);
}
